/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewJPanel.java
 *
 * Created on 29-nov-2011, 13:02:16
 */
package com.bytecodes.eaulas.conexion;

import com.bytecodes.eaulas.beans.*;
import com.bytecodes.eaulas.beans.Recurso;
import com.bytecodes.eaulas.comun.servicios.EAulasServiciosInterface;
import com.bytecodes.eaulas.comun.servicios.TDSLanguageUtils;
import java.rmi.RemoteException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
import java.awt.Color;
import java.util.*;
import java.awt.*;
import java.awt.event.*; 
import javax.swing.*;
import javax.swing.event.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.text.MaskFormatter;

/**
 *
 * @author Armando Ambite Arnal para ByteCodes
 */
public class PantallaAltaReservas extends javax.swing.JPanel {
    
    private EAulasServiciosInterface remoto;   
    private Usuario Client;
    private String idClient;
    private Integer idAula = 0;
    private Integer idRecursoExtra = 0;
    private Integer idExtra = 0;
    private JTextField txtOrd = new JTextField();
    private JTextField txtImp = new JTextField();
    private JTextField txtCli = new JTextField();
    private JTextField txtFe1 = new JTextField();
    private JTextField txtFe2 = new JTextField();
    private JComboBox txtHo1 = new javax.swing.JComboBox();
    private JComboBox txtHo2 = new javax.swing.JComboBox();
    private JFormattedTextField txtAul = new JFormattedTextField (new Integer(3));
    private JTextField txtImp1 = new JTextField();
    private JTextField txtImp2 = new JTextField();
    private JTextField txtImp3 = new JTextField();
    private JTextField txtImp4 = new JTextField();
    private JComboBox jComboBoxAulas;
    private JTextField txtMa1 = new JTextField();
    private JButton jButtonBuscar = new javax.swing.JButton();
    private javax.swing.JButton jButtonAceptar;
    private javax.swing.JButton jButtonCancelar;
    private JPanel pPie = new JPanel();
    private JPanel pCos = new JPanel();
    private Boolean Enciende = false;
    private ArrayList<Integer> idAulas = new ArrayList<Integer>();
    private ArrayList<Integer> idExtras = new ArrayList<Integer>();
    List<Aula> listaAulas = null;
    List<Recurso> listaExtras = null;
    private Double sumaAula = 0.0;
    List<ReservaRecurso> listaRecursos = null;        
    
    
    /** Creates new form NewJPanel */
    public PantallaAltaReservas(EAulasServiciosInterface rem, Usuario user) {
        remoto = rem;
        Client = user;
        idClient = Client.getCodUsuario();
        initComponents();                
    }
       
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        String op1 = TDSLanguageUtils.getMessage("panelAltaReservas.botReservar"); 
        String op2 = TDSLanguageUtils.getMessage("mensaje.buscar"); 
        String op22 = TDSLanguageUtils.getMessage("orden.mensaje.cancelar"); 
                                
        String ti1 = TDSLanguageUtils.getMessage("orden.titulo1");                        
        String ti2 = TDSLanguageUtils.getMessage("orden.titulo2"); 
        
        String op3 = TDSLanguageUtils.getMessage("orden.numero");                        
        String op3a = TDSLanguageUtils.getMessage("orden.importe");                        
        String op4 = TDSLanguageUtils.getMessage("orden.cliente");                        
        String op5 = TDSLanguageUtils.getMessage("orden.fecha1");                        
        String op6 = TDSLanguageUtils.getMessage("orden.fecha2");                        
        String op7 = TDSLanguageUtils.getMessage("orden.hora1");                        
        String op8 = TDSLanguageUtils.getMessage("orden.hora2");                        
        String op9 = TDSLanguageUtils.getMessage("orden.gente");    
        String op10 = TDSLanguageUtils.getMessage("orden.aula");    
        
        String ma1 = TDSLanguageUtils.getMessage("mostrar.lbl3");    
        String ma2 = TDSLanguageUtils.getMessage("mostrar.lbl4");    
        String ma3 = TDSLanguageUtils.getMessage("mostrar.lbl2");    
        String ma4 = TDSLanguageUtils.getMessage("mostrar.lbl3");    
        String ma5 = TDSLanguageUtils.getMessage("mostrar.lbl4");    
//        String ma6 = TDSLanguageUtils.getMessage("orden.material6");    
//        String im1 = TDSLanguageUtils.getMessage("orden.importe1");    
//        String im2 = TDSLanguageUtils.getMessage("orden.importe2");    
//        String im3 = TDSLanguageUtils.getMessage("orden.importe3");    
//        String im4 = TDSLanguageUtils.getMessage("orden.importe4");    
//        String im5 = TDSLanguageUtils.getMessage("orden.importe5");    
//        String im6 = TDSLanguageUtils.getMessage("orden.importe6");    
        Limpia();

        jComboBoxAulas = new javax.swing.JComboBox();
        jComboBoxAulas.addActionListener(new java.awt.event.ActionListener() {
               public void actionPerformed(java.awt.event.ActionEvent evt) {
                   Integer idpos = 0;
                   idAula = 0;
                   idRecursoExtra = 0;
                   // Saber el  numero de aula escogida
                   int selected = jComboBoxAulas.getSelectedIndex();    
                   if ((selected > -1) && (!idAulas.isEmpty())) {
                       idpos = idAulas.get(selected);
                       idAula = idpos;
                   }
                   // Saber su precio
                   sumaAula = SaberPrecioAula(idpos,idAulas);
                }
        });
        
//        txtMa1 = new javax.swing.JComboBox();
//        txtMa1.addActionListener(new java.awt.event.ActionListener() {
//               public void actionPerformed(java.awt.event.ActionEvent evt) {
//                   Double pre = DamePrecio(txtMa1.getSelectedIndex());
//                   String precioRecurso = String.valueOf(pre); 
//                   txtImp1.setText(precioRecurso);
//                   String precioAula = String.valueOf(sumaAula + SumaImp()); 
//                   txtImp.setText(precioAula);
//               }
//        });
        
//        txtMa2 = new javax.swing.JComboBox();
//        txtMa2.addActionListener(new java.awt.event.ActionListener() {
//               public void actionPerformed(java.awt.event.ActionEvent evt) {
//                   Double pre = DamePrecio(txtMa2.getSelectedIndex());
//                   String precioRecurso = String.valueOf(pre); 
//                   txtImp2.setText(precioRecurso);
//                   String precioAula = String.valueOf(sumaAula + SumaImp()); 
//                   txtImp.setText(precioAula);
//               }
//        });

//        txtMa3 = new javax.swing.JComboBox();
//        txtMa3.addActionListener(new java.awt.event.ActionListener() {
//               public void actionPerformed(java.awt.event.ActionEvent evt) {
//                   Double pre = DamePrecio(txtMa3.getSelectedIndex());
//                   String precioRecurso = String.valueOf(pre); 
//                   txtImp3.setText(precioRecurso);
//                   String precioAula = String.valueOf(sumaAula + SumaImp()); 
//                   txtImp.setText(precioAula);
//               }
//        });

//        txtMa4 = new javax.swing.JComboBox();
//        txtMa4.addActionListener(new java.awt.event.ActionListener() {
//               public void actionPerformed(java.awt.event.ActionEvent evt) {
//                   Double pre = DamePrecio(txtMa4.getSelectedIndex());
//                   String precioRecurso = String.valueOf(pre); 
//                   txtImp4.setText(precioRecurso);
//                   String precioAula = String.valueOf(sumaAula + SumaImp()); 
//                   txtImp.setText(precioAula);
//               }
//        });

//        txtMa5 = new javax.swing.JComboBox();
//        txtMa5.addActionListener(new java.awt.event.ActionListener() {
//               public void actionPerformed(java.awt.event.ActionEvent evt) {
//                   Double pre = DamePrecio(txtMa5.getSelectedIndex());
//                   String precioRecurso = String.valueOf(pre); 
//                   txtImp5.setText(precioRecurso);
//                   String precioAula = String.valueOf(sumaAula + SumaImp()); 
//                   txtImp.setText(precioAula);
//               }
//        });
        
//        txtMa6 = new javax.swing.JComboBox();
//        txtMa6.addActionListener(new java.awt.event.ActionListener() {
//               public void actionPerformed(java.awt.event.ActionEvent evt) {
//                   Double pre = DamePrecio(txtMa6.getSelectedIndex());
//                   String precioRecurso = String.valueOf(pre); 
//                   txtImp6.setText(precioRecurso);
//                   String precioAula = String.valueOf(sumaAula + SumaImp()); 
//                   txtImp.setText(precioAula);
//               }
//        });

        // Solo dejo entrar numeros
        txtFe1.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
            char caracter = e.getKeyChar();
            boolean bien = true;
            if (caracter == '-') bien = false;
            if ((caracter >= '0') && (caracter <= '9')) bien = false;
            if (txtFe1.getText().length() > 9) bien = true;
            if (bien) e.consume();
            }
        });
        // Solo dejo entrar numeros
        txtFe2.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
            char caracter = e.getKeyChar();
            boolean bien = true;
            if (caracter == '-') bien = false;
            if ((caracter >= '0') && (caracter <= '9')) bien = false;
            if (txtFe2.getText().length() > 9) bien = true;
            if (bien) e.consume();
            }
        });

        
        // Solo dejo entrar numeros
        txtAul.addKeyListener(new KeyAdapter() {
            public void keyTyped(KeyEvent e) {
            char caracter = e.getKeyChar();
            boolean bien = true;
            if ((caracter >= '0') && (caracter <= '9')) bien = false;
            if (txtAul.getText().length() > 2) bien = true;
            if (bien) e.consume();
            }
        });
    
        
        jButtonAceptar = new javax.swing.JButton();
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);

        jButtonCancelar = new javax.swing.JButton();
        
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()                
                .addContainerGap(900, Short.MAX_VALUE))
        );
        
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()                
                .addContainerGap(430, Short.MAX_VALUE))
        );
        
	this.setBackground(Color.WHITE);  
        
        JPanel pDades = new JPanel();
        JPanel panel = new JPanel();

        pPie.setVisible(Enciende);
        
        pDades.setLayout(null);
	pDades.setBounds( new Rectangle(25,10,600,100) );
	pDades.setBorder( BorderFactory.createTitledBorder(ti1) );                
        
        // Dotos sobre el cliente
	JLabel cp1 = new JLabel(op3);
	JLabel cp1a = new JLabel(op3a);
	JLabel cp2 = new JLabel(op4);                
	cp2.setBounds(new Rectangle(40,20,200,20));                
	cp1.setBounds(new Rectangle(40,50,200,20));
        cp1a.setBounds(new Rectangle(250,50,200,20));
        cp1a.setForeground(new Color(255, 51, 51));
        
	txtCli.setBounds(new Rectangle(150,20,400,20));
	txtOrd.setBounds(new Rectangle(150,50,80,20));
	txtImp.setBounds(new Rectangle(400,50,80,20));
        txtOrd.setEditable(false);	
        txtImp.setEditable(false);	
        txtCli.setEditable(false);	
        // Falta colocar el nombre del cliente.        
        txtCli.setText(idClient+" "+Client.getApellido1()+", "+Client.getNombre());
	pDades.add(cp1,null);
	pDades.add(cp1a,null);
	pDades.add(cp2,null);
	pDades.add(txtOrd,null);
	pDades.add(txtCli,null);
	pDades.add(txtImp,null);
        
        this.add(pDades,null);

        // Datos para seleccionar la AULA        
        pCos.setBackground(Color.white);
	pCos.setLayout(null);
	pCos.setBounds( new Rectangle(25,120,600,130) );
	pCos.setBorder( BorderFactory.createTitledBorder("") );
	JLabel cp3 = new JLabel(op5);
	JLabel cp4 = new JLabel(op6);                
	JLabel cp5 = new JLabel(op7);
	JLabel cp6 = new JLabel(op8);                
	JLabel cp7 = new JLabel(op9);
	cp3.setBounds(new Rectangle(40,20,200,20));
	cp4.setBounds(new Rectangle(250,20,200,20));                
	cp5.setBounds(new Rectangle(40,50,200,20));
	cp6.setBounds(new Rectangle(250,50,200,20));                
	cp7.setBounds(new Rectangle(40,80,200,20));
	txtFe1.setBounds(new Rectangle(150,20,80,20));
	txtFe2.setBounds(new Rectangle(350,20,80,20));
	txtHo1.setBounds(new Rectangle(150,50,60,20));
	txtHo2.setBounds(new Rectangle(350,50,60,20));
	txtAul.setBounds(new Rectangle(150,80,50,20));
        
        // Dates
	pCos.add(cp3,null);
	pCos.add(cp4,null);
	pCos.add(cp5,null);
	pCos.add(cp6,null);
	pCos.add(cp7,null);
	pCos.add(txtFe1,null);
	pCos.add(txtFe2,null);
	pCos.add(txtHo1,null);
	pCos.add(txtHo2,null);
	pCos.add(txtAul,null);
                
        jButtonBuscar.setText(op2);
	jButtonBuscar.setBounds(new Rectangle(300,90,155,30));
        jButtonBuscar.addActionListener( new java.awt.event.ActionListener() {
			public void actionPerformed(ActionEvent e) {                            
                        try {
                            if (correcto()) Enciende();                            
                            } catch (ParseException ex) {
                                Logger.getLogger(PantallaAltaReservas.class.getName()).log(Level.SEVERE, null, ex);
                            }
			}
		} );
        
        pCos.add(jButtonBuscar,null);
        this.add(pCos,null);
        
        // Finalmente elegimos AULA i EXTRAS ?                
	JLabel cp10 = new JLabel(op10);
	JLabel m1 = new JLabel(ma1);
	JLabel m2 = new JLabel(ma2);
	JLabel m3 = new JLabel(ma3);
	JLabel m4 = new JLabel(ma4);
	JLabel m5 = new JLabel(ma5);
//	JLabel m6 = new JLabel(ma6);
//	JLabel i1 = new JLabel(im1);
//	JLabel i2 = new JLabel(im2);
//	JLabel i3 = new JLabel(im3);
//	JLabel i4 = new JLabel(im4);
//	JLabel i5 = new JLabel(im5);
//	JLabel i6 = new JLabel(im6);
        
        txtMa1.setEditable(false);	
	cp10.setBounds(new Rectangle(40,20,200,20));
	m1.setBounds(new Rectangle(250,20,200,20));        
	m2.setBounds(new Rectangle(250,50,200,20));
       	txtImp1.setBounds(new Rectangle(340,20,80,20));
        txtImp1.setEditable(false);
       	txtImp2.setBounds(new Rectangle(340,50,80,20));
        txtImp2.setEditable(false);
        
	m3.setBounds(new Rectangle(40,80,200,20));
	m4.setBounds(new Rectangle(420,80,200,20));
	m5.setBounds(new Rectangle(420,110,200,20));
	txtMa1.setBounds(new Rectangle(100,80,300,20));
     	txtImp3.setBounds(new Rectangle(510,80,80,20));
        txtImp3.setEditable(false);

     	txtImp4.setBounds(new Rectangle(510,110,80,20));
        txtImp4.setEditable(false);
                        
//	i1.setBounds(new Rectangle(230,50,200,20));
//	i2.setBounds(new Rectangle(230,80,200,20));
//	i3.setBounds(new Rectangle(230,110,200,20));
        
//	m6.setBounds(new Rectangle(400,110,200,20));
        
//	i4.setBounds(new Rectangle(590,50,200,20));
//	i5.setBounds(new Rectangle(590,80,200,20));
//	i6.setBounds(new Rectangle(590,110,200,20));
        
//     	txtImp5.setBounds(new Rectangle(650,80,80,20));
//      txtImp5.setEditable(false);
//     	txtImp6.setBounds(new Rectangle(650,110,80,20));
//      txtImp6.setEditable(false);
        
        pPie.setBackground(Color.white);
	//jComboBoxAulas.setBounds(new Rectangle(100,20,110,20));    
        jComboBoxAulas.setBounds(new Rectangle(100,20,140,20)); 
        
//	txtMa2.setBounds(new Rectangle(100,80,110,20));
//	txtMa3.setBounds(new Rectangle(100,110,110,20));

//	txtMa4.setBounds(new Rectangle(460,50,110,20));
//	txtMa5.setBounds(new Rectangle(460,80,110,20));
//	txtMa6.setBounds(new Rectangle(460,110,110,20));
        
	pPie.setLayout(null);
	pPie.setBounds( new Rectangle(25,250,800,175) );
	pPie.setBorder( BorderFactory.createTitledBorder(ti2) );
        
	pPie.add(jComboBoxAulas,null);
	pPie.add(cp10,null);
        // Primer material
	pPie.add(m1,null);
        pPie.add(txtMa1,null);
//	pPie.add(i1,null);
	pPie.add(txtImp1,null);
        // Segundo material
	pPie.add(m2,null);
//      pPie.add(txtMa2,null);
//	pPie.add(i2,null);
	pPie.add(txtImp2,null);
        // Tercer mateiral
	pPie.add(m3,null);
//      pPie.add(txtMa3,null);
//	pPie.add(i3,null);
	pPie.add(txtImp3,null);
        // Cuarto material
	pPie.add(m4,null);
//      pPie.add(txtMa4,null);
//	pPie.add(i4,null);
        pPie.add(txtImp4,null);
        // Quinto material
	pPie.add(m5,null);
//      pPie.add(txtMa5,null);
//	pPie.add(i5,null);
//      pPie.add(txtImp5,null);
        // Sexto material
//	pPie.add(m6,null);
//      pPie.add(txtMa6,null);
//	pPie.add(i6,null);
//      pPie.add(txtImp6,null);        
        
        pPie.add(jComboBoxAulas,null);
        
        this.add(pPie,null);                
        panel.setBackground(Color.white);
        
        // Creem els botons
        //
        JButton jButtonCancelar = new JButton(op22);
	jButtonCancelar.setBounds(new Rectangle(430,138,155,30));
        jButtonCancelar.addActionListener( new java.awt.event.ActionListener() {
			public void actionPerformed(ActionEvent e) {
                            //
                        String me1 = TDSLanguageUtils.getMessage("mensaje.correcte.no"); 
                        int confirmaDada = JOptionPane.showConfirmDialog(null, me1,"eAulas", JOptionPane.YES_NO_OPTION); 	
			if (confirmaDada == 0) {
                            Limpia();
                        }
			}
		} );
        
        
        JButton jButtonAceptar = new JButton(op1);
	jButtonAceptar.setBounds(new Rectangle(630,138,155,30));
        jButtonAceptar.addActionListener( new java.awt.event.ActionListener() {
			public void actionPerformed(ActionEvent e) {
                            //
                            if (idAula == 0) {
                                JOptionPane.showMessageDialog(null, TDSLanguageUtils.getMessage("mensaje.error.datos1"),
				TDSLanguageUtils.getMessage("mensaje.titul.error"),
				JOptionPane.ERROR_MESSAGE);
                            }
                            else {
                                    String me1 = TDSLanguageUtils.getMessage("mensaje.correcte"); 
                                    int confirmaDada = JOptionPane.showConfirmDialog(null, me1,"eAulas", JOptionPane.YES_NO_OPTION); 	
                                    if (confirmaDada == 0) {
                                        // Alquler.
                                        Integer id = Graba();
                                        txtOrd.setText(String.valueOf(id));
                                        String Mensaje = TDSLanguageUtils.getMessage("mensaje.correcte.Ok")+" "+txtOrd.getText()+" - "+txtImp.getText();
                                        JOptionPane.showMessageDialog(null, Mensaje,
                                            TDSLanguageUtils.getMessage("mensaje.correcte1"),
                                            JOptionPane.ERROR_MESSAGE);                            
                                        Limpia();
                                    }
                                }
                        }
		} );
                
        pPie.add(jButtonAceptar,null);        
        pPie.add(jButtonCancelar,null);        
        
	setVisible(true);

    }

     /*
     * Carga la lista que se le envía por parámetro en el combo del parámetro
     */
     private void Limpia() {
         SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");         
         Date hoy = new Date();           
         String fecha1 = df.format(hoy);
         idAula = 0;
         idRecursoExtra = 0;
         //
         txtHo1.removeAllItems();
         txtHo1.addItem("08:00");
         txtHo1.addItem("09:00");
         txtHo1.addItem("10:00");
         txtHo1.addItem("11:00");
         txtHo1.addItem("12:00");
         txtHo1.addItem("13:00");
         txtHo1.addItem("14:00");
         txtHo1.addItem("15:00");
         txtHo1.addItem("16:00");
         txtHo1.addItem("17:00");
         txtHo1.addItem("18:00");
         txtHo1.addItem("19:00");
         txtHo1.addItem("20:00");
         txtHo1.addItem("21:00");
         txtHo1.addItem("22:00");
         txtHo2.removeAllItems();
         txtHo2.addItem("08:00");
         txtHo2.addItem("09:00");
         txtHo2.addItem("10:00");
         txtHo2.addItem("11:00");
         txtHo2.addItem("12:00");
         txtHo2.addItem("13:00");
         txtHo2.addItem("14:00");
         txtHo2.addItem("15:00");
         txtHo2.addItem("16:00");
         txtHo2.addItem("17:00");
         txtHo2.addItem("18:00");
         txtHo2.addItem("19:00");
         txtHo2.addItem("20:00");
         txtHo2.addItem("21:00");
         txtHo2.addItem("22:00");
         sumaAula = 0.0;
         txtOrd.setText("");
         txtImp.setText("0.0");
         txtFe1.setText(fecha1);
         txtFe2.setText(fecha1);
         txtAul.setText("");
         txtImp1.setText("0.0");
         txtImp2.setText("0.0");
         txtImp3.setText("0.0");
         txtImp4.setText("0.0");
//         txtImp5.setText("0.0");
//         txtImp6.setText("0.0");         
         txtFe1.setEditable(true);
         txtFe2.setEditable(true);
         txtHo1.setEditable(true);
         txtHo2.setEditable(true);
         txtAul.setEditable(true);
         pPie.setVisible(false);
         jButtonBuscar.setVisible(true);
    }
     
     private void Enciende() {
         pPie.setVisible(true);
         jButtonBuscar.setVisible(false);
         txtFe1.setEditable(false);
         txtFe2.setEditable(false);
         txtHo1.setEditable(false);
         txtHo2.setEditable(false);
         txtAul.setEditable(false);
         
         // Cargamos las aulas disponibles con los parametros dichos
         try {
                listaAulas = remoto.consultaAulas();
                cargarComboAulas(jComboBoxAulas, listaAulas);            
            } catch (Exception e) {                
				System.out.println(e.getMessage());
                                  }        
         
         // Cargamos los materiales extras
//         try {
//                listaExtras = remoto.consultaExtras();
//                cargarComboExtras(txtMa1, listaExtras);            
//                cargarComboExtras(txtMa2, listaExtras);            
//                cargarComboExtras(txtMa3, listaExtras);            
//                cargarComboExtras(txtMa4, listaExtras);            
//                cargarComboExtras(txtMa5, listaExtras);            
//                cargarComboExtras(txtMa6, listaExtras);            
//            } catch (Exception e) {                
//				System.out.println(e.getMessage());
//                                  }                          
    }
     
    
     /*
     * Carga la lista que se le envía por parámetro en el combo del parámetro
     */
     private void cargarComboAulas(JComboBox combo, List lista) {
        String itemAula;
      // String itemExtra;
        idAulas.clear(); 
    //    idExtras.clear();
        
        for (Object obj : lista) {
           // if (obj instanceof Aula && obj instanceof Recurso ) {
         if (obj instanceof Aula  ) {
             
            // if (obj instanceof Recurso  ) { 
               
             // itemAula = ((Aula) obj).getDescripcion() + " - "
            //  + ((Recurso) obj).getDescripcion();
            
                 itemAula = ((Aula) obj).getDescripcion();
               //  itemExtra = ((Recurso) obj).getDescripcion();
               
                combo.addItem(itemAula);
               // combo.addItem(itemExtra);
                
                
                idAulas.add(((Aula) obj).getId());
               // idExtras.add(((Recurso) obj).getId());
               // idExtras.add(((Recurso) obj).getId());
            }
        }
        
     }          
   //  }
     /*
     * Carga la lista que se le envía por parámetro en el combo del parámetro
     */
     private Double SaberPrecioAula(Integer idpos, List lista) {
         Double pre = 0.0;
         int i = 0;
         do {
            Aula aula = listaAulas.get(i);
            if (aula.getId() == idpos) {
                try {
                    pre = aula.getPrecioDia();
                    txtImp1.setText(Double.toString(aula.getPrecioDia()));
                    txtImp2.setText(Double.toString(aula.getPrecioHora()));
                    // Miro si hay extra
                    LeeRecursos(aula.getId());

                    String precio = String.valueOf(SaberFechas()); 
                    txtImp.setText(precio);
                    
                    i = lista.size();
                } catch (ParseException ex) {
                    Logger.getLogger(PantallaAltaReservas.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            i += 1;
         } while (i<lista.size());            
         return pre;
     }
     
     private float SaberFechas() throws ParseException{
          long diferencia = 0;
          float precio = 0;
          
          final long MILISEGUNDOS_POR_DIA = 24 * 60 * 60 * 1000; //Milisegundos al día 
          SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
          
          Date fechaInicial = dateFormat.parse(txtFe1.getText());
          Date fechaFinal = dateFormat.parse(txtFe2.getText()); 
          
          diferencia = ( fechaFinal.getTime() - fechaInicial.getTime() )/MILISEGUNDOS_POR_DIA; 
          diferencia = diferencia + 1;
          
          if (diferencia == 1) {
              // Calculo por horas
              // txtImp2 y txtImp4
              diferencia = 1;
              int selected1 = txtHo1.getSelectedIndex();    
              int selected2 = txtHo2.getSelectedIndex();    
              if (selected1 != selected2) {
                 diferencia = selected2-selected1;
              }
              precio = Float.parseFloat(txtImp2.getText()) * diferencia;
              precio = precio + (Float.parseFloat(txtImp4.getText()) * diferencia);              
          }
          else {
               // Precio por dias 
               // txtImp1 y txtImp3
              precio = Float.parseFloat(txtImp1.getText()) * diferencia;
              precio = precio + (Float.parseFloat(txtImp3.getText()) * diferencia);              
          }
          
          
          // TODO code application logic here
          System.out.println("Los dias que han pasado entre las 2 fechas es:" + " " +diferencia);
          
          
          return precio;    
     }
    
      
    /*
     * Carga la lista que se le envía por parámetro en el combo del parámetro
     */
     private Boolean correcto() throws ParseException{
          long diferencia = 0;
          Boolean bien = false;
          Date hoy = new Date();           
          
          final long MILISEGUNDOS_POR_DIA = 24 * 60 * 60 * 1000; //Milisegundos al día 
          SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
          bien = true;            
          
          Date fechaInicial = dateFormat.parse(txtFe1.getText());
          Date fechaFinal = dateFormat.parse(txtFe2.getText()); 
          
          diferencia = ( fechaInicial.getTime() - hoy.getTime() )/MILISEGUNDOS_POR_DIA; 
          if (diferencia < 0) bien = false;
          diferencia = ( fechaFinal.getTime() - fechaInicial.getTime() )/MILISEGUNDOS_POR_DIA; 
          if (diferencia < 0) bien = false;
         
         int selected1 = txtHo1.getSelectedIndex();    
         int selected2 = txtHo2.getSelectedIndex();             
         if (txtFe1.getText().length() < 10) bien = false;
         if (txtFe2.getText().length() < 10) bien = false;
         if (txtAul.getText().length() == 0) bien = false;
         if ((selected2 - selected1)< 0) bien = false;
         if (bien) {
            Integer Dia = Integer.parseInt(txtFe1.getText().substring(0,2));
            Integer Mes = Integer.parseInt(txtFe1.getText().substring(3,5));
            Integer Ano  = Integer.parseInt(txtFe1.getText().substring(6,10));
            if ((Dia < 0) || (Dia > 31)) bien = false;
            if ((Mes < 0) || (Mes > 12)) bien = false;
            if (Ano < 2011) bien = false;            
         }
         if (!bien) {
             // Error en entrada
             JOptionPane.showMessageDialog(null, TDSLanguageUtils.getMessage("mensaje.error.datos"),
				TDSLanguageUtils.getMessage("mensaje.titul.error"),
				JOptionPane.ERROR_MESSAGE);

         }
         return bien;
     }
      
    /*
     * Carga la lista que se le envía por parámetro en el combo del parámetro
     */
     private Integer Graba() {
         Integer ultima = 0;
         SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");  
         
         Date hoy = new Date();           
         String fecha1 = df.format(hoy);
         String fecha2 = txtFe1.getText()+' '+txtHo1.getSelectedItem().toString();
         String fecha3 = txtFe2.getText()+' '+txtHo2.getSelectedItem().toString();         
         Integer Pax = Integer.parseInt(txtAul.getText());
         Double Precio = Double.parseDouble(txtImp.getText());
         //
         try {
             // Busquem el contador
             ultima = remoto.dameUltimaReserva();
             // Grabem la reserva
             try {
                 remoto.setInsertReserva(ultima,idClient,idAula,idRecursoExtra,fecha2,fecha3,Pax,"Activa",fecha1,Precio);
                 } catch (Exception e) {                
                                System.out.println(e.getMessage());
                                   }        
             } catch (Exception e) {                
                            System.out.println(e.getMessage());
                                   }                 
        return ultima+1;          
     }

     private void LeeRecursos(Integer AulaId) {
         Recurso recursos = new Recurso();
         txtMa1.setText("");
         txtImp3.setText("0");
         txtImp4.setText("0");
         idRecursoExtra = 0;
         try {
                 recursos = remoto.consultaExtra(AulaId);
                 if (!(recursos.getId() == null)) {
                    idRecursoExtra = recursos.getId();
                    txtMa1.setText(recursos.getDescripcion());                        
                    txtImp3.setText(recursos.getPrecioDia().toString());
                    txtImp4.setText(recursos.getPrecioHora().toString());                     
                 }
                 
             } catch (Exception e) {                
                                    System.out.println(e.getMessage());
                                   }       
     }
     
} 
